import axios from "axios";
import {ElMessage} from "element-plus"

// 设置连接超时时间为10秒
axios.defaults.timeout = 10000;

axios.defaults.baseURL = `http://localhost:8888/`

//创建一个axios的对象
const instance = axios.create({
    baseURL: axios.defaults.baseURL,  // baseURL会在发送请求的时候拼接在url参数前面
    timeout: 5000
})

// 请求拦截
instance.interceptors.request.use(
    function (config) {
        
        return config;
    },
    function (err) {
        return Promise.reject(err);
    }
);

// 响应拦截器
instance.interceptors.response.use(
    response => {
        if (response.status == 200) {
            return Promise.resolve(response)
        } else {
            return Promise.reject(response);
        }
    },
    error => {
        if (error.response.status) {
            switch (error.response.status) {
                // 404请求不存在
                case 404:
                    ElMessage({
                        message: "网络请求不存在",
                        type: "error"
                    })
                    break;
                // 其他错误，直接抛出错误提示
                default:
                    ElMessage({
                        message: error.response.data.message,
                        type: "error"
                    })
            }
            return Promise.reject(error.response);
        }
    }
)

// Get方法调用
export function Get(url, params) {
    return instance.get(url, {params})
}

// Post方法调用
export function Post(url, data) {
    return instance.post(url, data);
}

// Put方法调用
export function Put(url, data) {
    return instance.put(url, data);
}

// Delete方法调用
export function Delete(url) {
    return instance.delete(url);
}